package sort;

/**
 * 快速排序算法测试类
 */
public class QuickSortTest {
    
    public static void main(String[] args) {
        System.out.println("=== 快速排序算法测试 ===\n");
        
        // 测试用例1：普通无序数组
        System.out.println("测试用例1：普通无序数组");
        int[] arr1 = {64, 34, 25, 12, 22, 11, 90};
        System.out.print("排序前: ");
        QuickSort.printArray(arr1);
        QuickSort.quickSort(arr1);
        System.out.print("排序后: ");
        QuickSort.printArray(arr1);
        System.out.println();
        
        // 测试用例2：已经排序的数组
        System.out.println("测试用例2：已经排序的数组");
        int[] arr2 = {1, 2, 3, 4, 5};
        System.out.print("排序前: ");
        QuickSort.printArray(arr2);
        QuickSort.quickSort(arr2);
        System.out.print("排序后: ");
        QuickSort.printArray(arr2);
        System.out.println();
        
        // 测试用例3：逆序数组
        System.out.println("测试用例3：逆序数组");
        int[] arr3 = {5, 4, 3, 2, 1};
        System.out.print("排序前: ");
        QuickSort.printArray(arr3);
        QuickSort.quickSort(arr3);
        System.out.print("排序后: ");
        QuickSort.printArray(arr3);
        System.out.println();
        
        // 测试用例4：包含重复元素的数组
        System.out.println("测试用例4：包含重复元素的数组");
        int[] arr4 = {3, 7, 3, 1, 7, 2, 1};
        System.out.print("排序前: ");
        QuickSort.printArray(arr4);
        QuickSort.quickSort(arr4);
        System.out.print("排序后: ");
        QuickSort.printArray(arr4);
        System.out.println();
        
        // 测试用例5：单个元素的数组
        System.out.println("测试用例5：单个元素的数组");
        int[] arr5 = {42};
        System.out.print("排序前: ");
        QuickSort.printArray(arr5);
        QuickSort.quickSort(arr5);
        System.out.print("排序后: ");
        QuickSort.printArray(arr5);
        System.out.println();
        
        // 测试用例6：空数组
        System.out.println("测试用例6：空数组");
        int[] arr6 = {};
        System.out.print("排序前: ");
        QuickSort.printArray(arr6);
        QuickSort.quickSort(arr6);
        System.out.print("排序后: ");
        QuickSort.printArray(arr6);
        System.out.println();
        
        // 测试用例7：大量元素的数组
        System.out.println("测试用例7：大量元素的数组");
        int[] arr7 = {49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62, 99, 98, 54, 56};
        System.out.print("排序前: ");
        QuickSort.printArray(arr7);
        QuickSort.quickSort(arr7);
        System.out.print("排序后: ");
        QuickSort.printArray(arr7);
        System.out.println();
        
        System.out.println("=== 测试完成 ===");
    }
}